﻿#ifndef WRWORKTCPCOMMCLIENTCONTEXT_H
#define WRWORKTCPCOMMCLIENTCONTEXT_H

#include <QMutex>
#include <QThread>
#include <QAtomicInt>

//表示工作TCP通讯客户端上下文。
class WRWorkTcpCommClientContext
{
private:
    //引用计数。
    QAtomicInt m_refCnt;
    //处理线程。
    QThread* m_thread;

    //清理当前对象所占用的相关资源。
    ~WRWorkTcpCommClientContext(void);

public:
    //初始化上下文对象。
    WRWorkTcpCommClientContext(void);

    //添加对象引用。
    inline void addRef(void)
    {
        m_refCnt.ref();
    }
    //释放对象引用, 如果引用计数为0，则删除对象，返回True，否则返回False。
    inline bool release(void)
    {
        if (!m_refCnt.deref())
        {
            delete this;
            return true;
        }
        return false;
    }

    //获取处理线程。
    QThread* thread(void) const
    {
        return m_thread;
    }
};

#endif // WRWORKTCPCOMMCLIENTCONTEXT_H
